Mixed-reality architectural design environment

ABSTRACT

A computer system for managing multiple distinct perspectives within a mixed-reality design environment loads a three-dimensional architectural model into memory. The three-dimensional architectural model is associated with a virtual coordinate system. The three-dimensional architectural model comprises at least one virtual object that is associated with an independently executable software object that comprises independent variables and functions that are specific to a particular architectural element that is represented by the at least one virtual object. The computer system associates the virtual coordinate system with a physical coordinate system within a real-world environment. The computer system transmits to each device of multiple different devices rendering information. The rendering information comprises three-dimensional image data for rendering the three-dimensional architectural model and coordinate information that maps the virtual coordinate system to the physical coordinate system.

BACKGROUND

As computerized systems have increased in popularity, so have the rangeof applications that incorporate computational technology. Computationaltechnology now extends across a broad range of applications, including awide range of productivity and entertainment software. Indeed,computational technology and related software can now be found in a widerange of generic applications that are suited for many environments, aswell as fairly industry-specific software.

One such industry that has employed specific types of software and othercomputational technology increasingly over the past few years is thatrelated to building and/or architectural design. In particular,architects and interior designers (“or designers”) use a wide range ofcomputer-aided design (CAD) software or building information (BIM)software (i.e., “architectural design software applications”) fordesigning the aesthetic as well as functional aspects of a givenresidential or commercial space. For example, a designer might use a CADor BIM program to design a building or part of a building, and thenutilize drawings or other information from that program to order ormanufacture building components.

One particular benefit that is offered by modern CAD and BIM software isthe ability to see a three-dimensional rendering of an architecturaldesign. This can provide tremendous value to designers and/or clientswho wish to visualize a design before starting the actual buildingprocess. For example, in at least one conventional system, a user may beable to view on a computer screen a completely rendered office building.The user may be able to navigate within the three-dimensional renderingssuch that the user can view different perspectives and locationsthroughout the design.

While three-dimensional renderings can provide a user with a generalidea regarding a final product, conventional three-dimensionalrenderings suffer from several shortcomings. For example, navigation ofconventional three-dimensional renderings can be cumbersome as a usertries to achieve particular views of various features. Additionally,conventional systems may not be able to portray a true scale of afinished product. For example, a user's view of a conventionalthree-dimensional rendering on a computer screen may fall short ofconveying a full appreciation for the scale of a particular feature ordesign.

Accordingly, there are a number of problems in the art that can beaddressed.

BRIEF SUMMARY

Embodiments of the present invention comprise systems, methods, andapparatus configured to allow one or more users to navigate and interactwith a three-dimensional rendering of an architectural design. Inparticular, implementations of the present invention comprisemixed-reality components that create a mixed-reality environment thatimmerses a user. For example, the mixed-reality components may comprisea headset that at least partially covers a user's eyes and tracks theviewing angle of the user's eyes and/or head movement, a mobile phonethat displays, to a user, mixed-reality elements, or any other devicecapable of providing a user a view of a real-world environment andaccompanying mixed-reality elements. As such, the mixed-realitycomponents can be used to generate a mixed-reality environment thatallows a user to interact with an architectural design within areal-world space.

Embodiments disclosed here include a computer system for managingmultiple distinct perspectives within a mixed-reality designenvironment. The computer system loads a three-dimensional architecturalmodel into memory. The three-dimensional architectural model isassociated with a virtual coordinate system. The three-dimensionalarchitectural model comprises at least one virtual object that isassociated with an independently executable software object thatcomprises independent variables and functions that are specific to aparticular architectural element that is represented by the at least onevirtual object. The computer system associates the virtual coordinatesystem with a physical coordinate system within a real-worldenvironment. The computer system transmits to each device of multipledifferent devices rendering information. The rendering informationcomprises three-dimensional image data for rendering thethree-dimensional architectural model and coordinate information thatmaps the virtual coordinate system to the physical coordinate system.

Disclosed embodiments also comprise a system for managing multipledistinct perspectives within a mixed-reality design environment. Thesystem includes a mixed-reality server that loads a three-dimensionalarchitectural model into memory. The three-dimensional architecturalmodel is associated with a virtual coordinate system. Thethree-dimensional architectural model also comprises at least onevirtual object that is associated with an independently executablesoftware object that comprises independent variables and functions thatare specific to a particular architectural element that is representedby the at least one virtual object. The mixed-reality server associatesthe virtual coordinate system with a physical coordinate system within areal-world environment. The mixed-reality server then transmitsrendering information to a first mixed-reality device and a second mixedreality device. The rendering information comprises three-dimensionalimage data comprising rendering instructions for the at least onevirtual object within least a portion of the three-dimensionalarchitectural model, and coordinate information that maps the virtualcoordinate system to the physical coordinate system.

The first mixed-reality device renders a first mixed-reality environmentfrom a first perspective that is unique to the first mixed-realitydevice. In response to a user input, the first mixed-reality devicecommunicates a first ray to the mixed-reality server. Similarly, thesecond mixed-reality device renders a second mixed-reality environmentfrom a second perspective that is unique to the second mixed-realitydevice. In response to a user input, the second mixed-reality devicecommunicates a second ray to the mixed-reality server.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

Additional features and advantages will be set forth in the descriptionwhich follows, and in part will be obvious from the description, or maybe learned by the practice of the teachings herein. Features andadvantages of the invention may be realized and obtained by means of theinstruments and combinations particularly pointed out in the appendedclaims. Features of the present invention will become more fullyapparent from the following description and appended claims, or may belearned by the practice of the invention as set forth hereinafter.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the manner in which the above-recited and otheradvantages and features can be obtained, a more particular descriptionof the subject matter briefly described above will be rendered byreference to specific embodiments which are illustrated in the appendeddrawings. Understanding that these drawings depict only typicalembodiments and are not therefore to be considered to be limiting inscope, embodiments will be described and explained with additionalspecificity and detail through the use of the accompanying drawings inwhich:

FIG. 1 illustrates a schematic diagram of an embodiment of anarchitectural design software application.

FIG. 2 illustrates a user's view of a room within an embodiment of amixed-reality environment.

FIG. 3 illustrates a user interacting with the mixed-reality environmentdepicted in FIG. 2.

FIG. 4 illustrates an embodiment of a user interfacing with amixed-reality environment.

FIG. 5 illustrates a schematic of a user interaction with themixed-reality environment depicted in FIG. 2.

FIG. 6 illustrates a flowchart of a series of acts in an embodiment of amethod for managing multiple distinct perspectives within amixed-reality design environment.

DETAILED DESCRIPTION

Disclosed embodiments extend to systems, methods, and apparatusconfigured to allow one or more users to navigate and interact with athree-dimensional rendering of an architectural design. In particular,implementations of the present invention comprise mixed-realitycomponents that create a mixed-reality environment that immerses a user.For example, the mixed-reality components may comprise a headset that atleast partially covers a user's eyes and tracks the viewing angle of theuser's eyes and/or head movement, a mobile phone that displays, to auser, mixed-reality elements, or any other device capable of providing auser a view of a real-world environment and accompanying mixed-realityelements. As such, the mixed-reality components can be used to generatea mixed-reality environment that allows a user to interact with anarchitectural design within a real-world space.

Disclosed embodiments include a mixed-reality architectural designsystem that injects mixed-reality elements into a real-world space. Forexample, a user may be interested in building out office space on anempty floor of a high-rise building. In various disclosed embodiments,the mixed-reality architectural design system injects mixed-realityelements into the floor space through the user's viewing device. Theviewing device may comprise a mixed-reality headset, a virtual realityheadset, a mobile phone display, or any other device capable ofcapturing the real-world space and rendering three-dimensional objects.

Disclosed embodiments allow a user to view virtual renderings ofarchitectural designs within the real world. For instance, themixed-reality architectural design system is capable of displaying tothe user mixed-reality elements that include walls, furniture, lights,textures, and various other design elements that have been designed forthe user's office. Additionally, the mixed-reality architectural designsystem is capable of receiving commands and presenting options to theuser that manipulate and change the architectural design within themixed-reality world. For example, while wearing a mixed-reality headset,the user may determine that a particular wall needs to be extended.Using appropriate input, which may include hand motions, eye motions,head movement, input through a keyboard, input through a touchinterface, or other similar input, the user directs the mixed-realityarchitectural design system to extend the wall. In at least oneembodiment, the mixed-reality architectural design system extends thewall in real-time such that the user sees the wall being extended withinthe mixed-reality environment.

Turning now to the figures, FIG. 1 illustrates a schematic diagram of anembodiment of an architectural design software application 100 (alsoreferred to herein as a mixed-reality architectural design system). Thedepicted architectural design software application 100 comprises variousmodules and components including a processing unit 110, an architecturaldesign module 120, a data storage 130, and an input/output interface140. One will understand, however, that the depicted modules andcomponents are merely exemplary and are provided for the sake ofexplanation. In various additional or alternative embodiments, anarchitectural design software application 100 may comprise differentconfigurations and descriptions of modules and components that areequivalent to those described herein.

As depicted, the architectural design software application 100 is incommunication with various mixed-reality devices, including, avirtual-reality device 150 a, an augmented-reality device 150 b, and asmart phone 150 c. As used herein, mixed-reality comprises any usage ofcomputer generated elements that incorporate a virtual object within auser's real-world space. For example, mixed reality includes virtualreality where a user is completely immersed within a virtual world,augmented reality where a user is immersed within both a real-worldspace and a virtual space, and any other combination thereof ofreal-world and virtual elements.

The architectural design software application 100 allows a user toincorporate virtual elements within a real-world space. For example, theuser can design an architectural model or schematic using conventionalCAD systems and then interfacing with architectural design softwareapplication 100 through a mixed-reality environment. For example, theuser can create an architectural design within a two-dimensional CADinterface. The two-dimensional design can be transformed into athree-dimensional model that can be incorporated into a mixed-realityenvironment. Similarly, the user may be able to view the two-dimensionaldesign within the mixed-reality environment. Additionally, a user canalso create a two- or three-dimensional architectural design within themixed-reality environment by placing virtual architectural elementswithin the mixed-reality environment in real-time. For example, the usercan cause a wall to be generated within the mixed-reality environment.An associated CAD file can then be updated to reflect the new wall.Accordingly, an entire architectural design can be created entirelywithin a mixed-reality environment.

In at least one embodiment, a processing unit 110 manages communicationand interfacing between an input/output interface 140 and architecturaldesign module 120. The architectural design module 120 may comprise aspecial-purpose CAD program or a conventional CAD program that iscapable of exporting architectural design schematics. In variousembodiments, the architectural design module 120 accesses architecturaldesigns files that are stored within the data storage 130. As such, thearchitectural design module 120 can load a conventional architecturaldesign file that is within design storage 120 and provide the file toprocessing unit 110.

The processing unit 110 then loads the three-dimensional architecturalmodel into memory. In at least one embodiment, the three-dimensionalarchitectural model comprises one or more architectural design elementsthat have been designed to fit within a real-world space. For example,the three-dimensional architectural model may comprise an entirebuilding that has been designed to fit on a plot of land. In contrast,the three-dimensional architectural model may also comprise a design forthe lobby of a business. The three-dimensional architectural model mayinclude architectural design elements such as wiring, plumbing, wallposition, furniture, lighting, and other related design features.

Additionally, in at least one embodiment, one or more of thearchitectural design elements are associated with independentlyexecutable software objects. The independently executable softwareobjects are functional within the architectural design softwareapplication 100 to provide context and functionality specific to theindividual architecture design elements with which each independentlyexecutable software object is associated.

By way of explanation, an independently executable software objectcomprises a set of computer-executable instructions used inobject-oriented program code, and which relate to a particular physicalcomponent or feature. In addition, software objects can be interrelatedvia parent/child dependency relationships where changes in a parentobject flow through to a child object and vice versa. For example, asoftware object created for a table may have several child objects foreach leg.

In other cases, the software objects can be related to other softwareobjects that represent physically proximate components (e.g., a wallobject that is positioned next to the table object). For example, theabove-mentioned table software object and leg software objects canindependently execute in a correlated fashion to ensure eachcorresponding physical component (i.e., the table top, or the tablelegs) is positioned appropriately, or otherwise colored and designedconsistent with the user's specifications. For instance, a leg softwareobject can identify that its location next to a wall renders a physicalleg unnecessary, and accordingly can automatically incorporate a bracketto attach directly to the wall in place of a physical leg.

As such, each independently executable software object comprisesindependent variables and functions that are specific to the particulararchitectural element that is represented by the at least one virtualobject. For example, the exemplary table from above may be associatedwith a selection of possible woods. The independently executablesoftware object associated with the table, may comprise variables thatare associated with the different possible woods and also the functionsnecessary to switch between the different possible woods.

Additionally, in at least one embodiment, the processing unit 110generates a coordinate system that associates a virtual coordinatesystem within the architectural design schematic with a physicalcoordinate system with a real-world environment. For example, theprocessing unit 110 may generate a coordinate system that associates thearchitectural schematic for a user's planned office space with aphysical coordinates system that is associated with the physical officespace itself. As such, when rendering the mixed-reality elements thatare associated with the architectural design schematic, the elementsappear within the correct position within the real-world environment dueto the common coordinate system generated by the processing unit 110.

The processing unit 110 then transmits to the input/out interface (andon to the mixed-reality devices 150(a-c)) rendering information. Therendering information comprises three-dimensional model data describingat least a portion of the three-dimensional architectural model andcoordinate information that maps the virtual coordinate system to thephysical coordinate system. In at least one embodiment, thethree-dimensional model data consists of geometry information andtexture information describing objects within the three-dimensionalarchitectural model. As such, in at least one embodiment, themixed-reality devices 150(a-c) are only rendering received geometriesand textures without any metadata or knowledge about the independentlyexecutable software objects or other attributes associated with thearchitectural elements. In contrast to providing the entire dataavailable within the CAD file, providing only geometries and texturesprovides several significant technical benefits, such as requiringsignificantly less processing power at the mixed-reality devices150(a-c) and requiring less bandwidth to communicate the information.

FIG. 2 illustrates a user's view of a room within a mixed-realityenvironment 200. In particular, FIG. 2 depicts an empty room thatcomprises various virtual elements 220, 230, 240. As used herein, avirtual element, also referred to as a virtual object, comprises arendered object within the mixed-reality environment 200. In contrast, areal-world element comprises a physical object within the mixed-realityenvironment 200. The depicted room comprises a triangle shaped cubicle220 with an associated desk surface 230 and a light fixture 240. Inaddition to the virtual elements 220, 230, 240 within the room. The roomalso comprises a real-world element in the form of real-world target210.

In at least one embodiment, before a virtual element is displayed to auser, the user must point their mixed-reality device 150 (a-c) at thetarget 210 within the physical world. The location of the target 210within the physical world is known to the processing unit 110. As such,the processing unit 110 can generate the shared coordinate systembetween the three-dimensional model (i.e., the mixed-reality elements)and the real-world room.

In various additional or alternative embodiments, the target 210 maycomprise a set of lights, a particular symbol, or known objects withinthe real-world environment. For example, in at least one embodiment, auser may utilize the mixed-reality device outdoors to view a proposedbuilding that is to be built. The mixed-reality device may utilize areal-world building, or some other physical landmark, as a target. Theprocessing unit 110 may also be aware of the location of the currentlybuilt building and thus can generate a common coordinate system. In atleast one embodiment, however, a target 210 is not necessary to generatea common coordinate system. For example, in at least one embodiment, aone or more of an electronic compass, an altimeter, a GPS, a Wi-Fireceiver, a BLUETOOTH receiver, or some other location aware device maybe sufficient to generate a common coordinate system.

In addition to allowing a user to view virtual elements within thereal-world environment in which the virtual elements are designed tofit, disclosed embodiments also provide tools for a user to interactwith and change the virtual elements. For example, area 250 depicts aparticular portion of the mixed-reality environment that a user desiresto interact with. Various different methods can be utilized by the userto select the area. For example, the user may point at the area, theuser may make a pinching motion over the area, the user may select thearea with an interface device integrated within the mixed-reality device150(a-c) or through any other method suitable for interacting with amixed-reality element.

As depicted in FIG. 3, in at least one embodiment, the user interactswith the mixed-reality light fixture 240 by making a pinching motionwith their hand 310 that intersects at the lighting fixture 140 withinthe user's view. Upon making the pinching motion, the user'smixed-reality device 150(a-c) calculates a ray that extends from aparticular portion 300 of the user's perspective towards the directionin which the user pinched, or in this case, towards areas 250.

FIG. 4 illustrates a different perspective of a user 400 interfacingwith the mixed-reality environment 200 of FIG. 3. As depicted, the user400 is wearing a head-mounted display 410 through which virtual elementsare rendered. The user's makes a pinching motion with his hand 310. Uponidentifying the pinching motion, the processing unit 110 calculates anangle 420 that indicates the direction of the ray 430 relative to centerof the user's field-of-view (e.g., particular portion 300). One willappreciate that similar functionality can be accomplished with a videocamera and display on a smart phone, where an angle 420 is calculatedfrom the center point of the user's view within the display.

Once the angle 420 is identified, the ray 430 can be fully describedusing only the angle 420 and the coordinates of the center of the user'sfield-of-view. One will appreciate that the coordinates could also beassociated with a location other than the center of the user'sfield-of-view. In at least one embodiment, the coordinates comprisescoordinates within either the virtual coordinate system or the physicalcoordinate system, which the processing unit 110 is able to interchangebetween. Additionally, in at least one embodiment, the angle 420comprises an angle within three-dimensional space. For example, theangle 420 may be associated with multiple individual values thatproperly place the angle within the physical coordinate system or thevirtual coordinate system.

In at least one embodiment, once the ray 430 is identified, the user'smixed-reality device (i.e., head-mounted display 410) communicates theray 430 to the processing unit 110. The processing unit 110 then extendsthe ray within the three-dimensional architectural model until itintersects the at least one virtual object. For example, the processingunit 110 is aware of the entire mixed-reality environment. Using thisawareness, the processing unit 110 is capable determining whether theray intersects with a virtual object, such as the light fixture 240. Assuch, in at least one embodiment, upon receiving a user input (e.g., thepinching motion), the mixed-reality device communicates only a ray 430generated from the user input to the processing unit 110. The processingunit 110 then determines what virtual object the user is interactingwith by extending the ray until it intersects with the target virtualobject.

Upon identifying the intersected object (in this example the lightfixture 240), the processing unit 110 identifies one or more functionsassociated with the independently executable software object that isassociated with the at least one virtual object. For example, theindependently executable software object associated with light fixture240 comprises functions for selecting the color of the light shade, thecolor of the light, the intensity of the light, whether the light is onor off, and various other similar attributes.

The processing unit 110 then generates the necessary renderinginformation for the user's mixed-reality device to generate a commandinterface within the three-dimensional architectural model that depictsone or more commands related to the one or more functions. For example,FIG. 3 depicts a command interface 320 that indicates various functionsthat can be performed on the light fixture 240. In at least oneembodiment, the same methods and systems described above are used by theuser to select a particular option in the command interface 320. Forexample, the user can simply make a pinching motion over the command ofchoice.

One will appreciate, in view of the above, that disclosed embodimentsprovide a highly efficient system for communicating a three-dimensionalarchitectural model to one or more users and allowing them to interactwith the model. For example, in at least one embodiment, several dozenor even hundreds of users may be viewing an architectural model of abuilding using their own mobile phones. One will appreciate thetremendous amount of bandwidth it would require to communicate theentire model to each device.

Instead of communicating the entire model to each device, disclosedembodiments communicate only textures, geometries, and coordinatessystems to the mixed-reality. Further, in some embodiments, thearchitectural design software application 100 only communicates theportions of the textures and geometries need to each individual device.As such, each device may comprise different textures and geometries, buteach device can receive additional textures and geometries as needed.

Further, in at least one embodiment, each user is capable of interactingwith the three-dimensional architectural model by simply communicatingrays to the architectural design software application 100. Theprocessing unit 110 then determines what virtual objects the respectiverays intersect with, and communicates back to the respectivemixed-reality devices the textures and geometries necessary to renderthe respective command interfaces. In at least one embodiment, eachrespective command interface is only rendered by the mixed-realitydevice with which it is associated. Accordingly, disclosure embodimentsutilize a highly efficient method of communicate data that removes heavyprocessing loads from the individual mixed-reality devices.

In at least one embodiment, executing the command comprises changing thethree-dimensional architectural model in some way. Once the model ischanged, the architectural design module 120 communicates the updatedmodel to the processing unit 110. The processing unit 110 thencommunicates an updated rendering information 200 to the user, and anyother users also within the same mixed-reality environment. In at leastone embodiment, to conserve bandwidth, the processing unit 110 onlycommunicates the updated portions of the mixed-reality environment andonly communicates it to users who are likely to view the updatedportions.

As such, in various embodiments, a user can manipulate an architecturaldesign from within a mixed-reality environment. The respective changescan be made within an architectural design module 120, which updates acorresponding CAD file. Additionally, the changes can be propagatedsimultaneously to multiple mixed-reality devices 150(a-c) for viewing inreal time. Further, bandwidth and processing power can be conserved bycommunicating only textures and geometries to the mixed-reality devices150(a-c), and, in turn, primarily communicating rays back to thearchitectural design software application 100 for interpretation intospecific commands and requests.

As mentioned above, in various embodiments, multiple mixed-realitydevices 150(a-c) can be within the same mixed-reality environment 200simultaneously. For example, in at least one embodiment, a first usermay be utilizing an augmented reality headset 150 b within mixed-realityenvironment 200, while a large group of other users are experiencing themixed-reality environment 200 through their mobile phones 150 c. Forexample, the other group of users may hold their phones before theirfaces and see the mixed-reality elements displayed within the viewingscreen of their phone in the mixed-reality environment 200.

Additionally, various motion tracking sensors within the phones mayallow the users to move around and change perspective with respect tothe mixed-reality environment. Similarly, as described above, in atleast one embodiment, one or more of the users with phones may be ableto simultaneously manipulate and change the mixed-reality environment byissuing commands from their phones. For example, a user's phone cancommunicate rays to the architectural design software application 100,which processes the ray as described above.

Additionally, in at least one embodiment, fixed-cameras can be utilizedwithin the mixed-reality environment. For example, the location andheight of a camera can be entered into the architectural design softwareapplication 100. The architectural design software application 100 canthen communicate the fixed camera's view to a display screen forindividuals to view the mixed-reality environment. Additionally, in atleast one embodiment, data received from the fixed camera can be used tocontrol objects within the real-world environment. For example, anautomated vacuum cleaner may receive a command to stop before runninginto a virtual wall that is not apparent to the vacuum cleaner, but isapparent within the mixed-reality environment from the perspective ofthe fixed camera.

Accordingly, FIGS. 1-5 and the corresponding text illustrate orotherwise describe one or more components, modules, and/or mechanismsfor rendering a specular effect within a three-dimensional model. Onewill appreciate that disclosed embodiments can allow multiple users toview a mixed-reality environment while processing and receiving aminimal amount of information. The following discussion now refers to anumber of methods and method acts that may be performed. Although themethod acts may be discussed in a certain order or illustrated in a flowchart as occurring in a particular order, no particular ordering isrequired unless specifically stated, or required because an act isdependent on another act being completed prior to the act beingperformed.

For example, FIG. 6 illustrates that a method 600 for managing multipledistinct perspectives within a mixed-reality design environment includesan act 610 of loading a three-dimensional architectural model intomemory. Act 610 comprises loading a three-dimensional architecturalmodel into memory. The three-dimensional architectural model isassociated with a virtual coordinate system. The three-dimensionalarchitectural model comprises at least one virtual object that isassociated with an independently executable software object thatcomprises independent variables and functions that are specific to aparticular architectural element that is represented by the at least onevirtual object. For example, as depicted and described with respect toFIGS. 1 and 2, the processing unit 110 loads into memory athree-dimensional architectural model that is associated with the roomdepicted in FIG. 2. An exemplary virtual object, the light fixture 240,is associated with independently executable software objects thatinclude functions and variables describing the light fixture 200.

Additionally, method 600 includes an act 620 of associating a virtualcoordinate system with a physical coordinate system. Act 620 comprisesassociating the virtual coordinate system with a physical coordinatesystem within a real-world environment. For example, as depicted anddescribed with respect to FIGS. 1 and 2, a target 210 within the room isused to map a virtual coordinate system to a real-world coordinatesystem.

Method 600 also includes an act 630 of transmitting renderinginformation. Act 630 comprises transmitting to each device of multipledifferent devices rendering information. The rendering informationcomprises three-dimensional image data comprising rendering instructionsfor the at least one virtual object within least a portion of thethree-dimensional architectural model, and coordinate information thatmaps the virtual coordinate system to the physical coordinate system.For example, as depicted and described with respect to FIGS. 1-3, theprocessing unit communicates rendering information in the form oftextures and geometries. The textures and geometries describe virtualobjects such as lighting fixture 240.

Accordingly, embodiments disclosed herein include systems and methodsfor displaying and interacting with three-dimensional architecturaldesigns within a mixed-reality environment. In particular, disclosedembodiments overcome several different technical challenges relating toprocessor limitations and bandwidth limitations when communicating withlarge numbers of devices and or underpowered devices. For example, asdescribed above, disclosed embodiments allow mixed-reality devices150(a-c) to generate mixed-reality environments using only a commoncoordinate system and textures and geometries. As such, a user is ableto intuitively and personally interact with an architectural design inreal-time within an actual physical design space without requiring largeamounts of processing power and bandwidth.

Further, the methods may be practiced by a computer system including oneor more processors and computer-readable media such as computer memory.In particular, the computer memory may store computer-executableinstructions that when executed by one or more processors cause variousfunctions to be performed, such as the acts recited in the embodiments.

Embodiments of the present invention may comprise or utilize a specialpurpose or general-purpose computer including computer hardware, asdiscussed in greater detail below. Embodiments within the scope of thepresent invention also include physical and other computer-readablemedia for carrying or storing computer-executable instructions and/ordata structures. Such computer-readable media can be any available mediathat can be accessed by a general purpose or special purpose computersystem. Computer-readable media that store computer-executableinstructions are physical storage media. Computer-readable media thatcarry computer-executable instructions are transmission media. Thus, byway of example, and not limitation, embodiments of the invention cancomprise at least two distinctly different kinds of computer-readablemedia: physical computer-readable storage media and transmissioncomputer-readable media.

Physical computer-readable storage media includes RAM, ROM, EEPROM,CD-ROM or other optical disk storage (such as CDs, DVDs, etc.), magneticdisk storage or other magnetic storage devices, or any other mediumwhich can be used to store desired program code means in the form ofcomputer-executable instructions or data structures and which can beaccessed by a general purpose or special purpose computer.

A “network” is defined as one or more data links that enable thetransport of electronic data between computer systems and/or modulesand/or other electronic devices. When information is transferred orprovided over a network or another communications connection (eitherhardwired, wireless, or a combination of hardwired or wireless) to acomputer, the computer properly views the connection as a transmissionmedium. Transmissions media can include a network and/or data linkswhich can be used to carry or desired program code means in the form ofcomputer-executable instructions or data structures and which can beaccessed by a general purpose or special purpose computer. Combinationsof the above are also included within the scope of computer-readablemedia.

Further, upon reaching various computer system components, program codemeans in the form of computer-executable instructions or data structurescan be transferred automatically from transmission computer-readablemedia to physical computer-readable storage media (or vice versa). Forexample, computer-executable instructions or data structures receivedover a network or data link can be buffered in RAM within a networkinterface module (e.g., a “NIC”), and then eventually transferred tocomputer system RAM and/or to less volatile computer-readable physicalstorage media at a computer system. Thus, computer-readable physicalstorage media can be included in computer system components that also(or even primarily) utilize transmission media.

Computer-executable instructions comprise, for example, instructions anddata which cause a general purpose computer, special purpose computer,or special purpose processing device to perform a certain function orgroup of functions. The computer-executable instructions may be, forexample, binaries, intermediate format instructions such as assemblylanguage, or even source code. Although the subject matter has beendescribed in language specific to structural features and/ormethodological acts, it is to be understood that the subject matterdefined in the appended claims is not necessarily limited to thedescribed features or acts described above. Rather, the describedfeatures and acts are disclosed as example forms of implementing theclaims.

Those skilled in the art will appreciate that the invention may bepracticed in network computing environments with many types of computersystem configurations, including, personal computers, desktop computers,laptop computers, message processors, hand-held devices, multi-processorsystems, microprocessor-based or programmable consumer electronics,network PCs, minicomputers, mainframe computers, mobile telephones,PDAs, pagers, routers, switches, and the like. The invention may also bepracticed in distributed system environments where local and remotecomputer systems, which are linked (either by hardwired data links,wireless data links, or by a combination of hardwired and wireless datalinks) through a network, both perform tasks. In a distributed systemenvironment, program modules may be located in both local and remotememory storage devices.

Alternatively, or in addition, the functionality described herein can beperformed, at least in part, by one or more hardware logic components.For example, and without limitation, illustrative types of hardwarelogic components that can be used include Field-programmable Gate Arrays(FPGAs), Program-specific Integrated Circuits (ASICs), Program-specificStandard Products (ASSPs), System-on-a-chip systems (SOCs), ComplexProgrammable Logic Devices (CPLDs), etc.

The present invention may be embodied in other specific forms withoutdeparting from its spirit or characteristics. The described embodimentsare to be considered in all respects only as illustrative and notrestrictive. The scope of the invention is, therefore, indicated by theappended claims rather than by the foregoing description. All changeswhich come within the meaning and range of equivalency of the claims areto be embraced within their scope.

1. A computer system for managing multiple distinct perspectives withina mixed-reality design environment, comprising: one or more processors;and one or more computer-readable media having stored thereon executableinstructions that when executed by the one or more processors configurethe computer system to perform at least the following: load athree-dimensional architectural model into memory, wherein: thethree-dimensional architectural model is associated with a virtualcoordinate system, and the three-dimensional architectural modelcomprises at least one virtual object that is associated with anindependently executable software object that comprises independentvariables and functions that are specific to a particular architecturalelement that is represented by the at least one virtual object;associate the virtual coordinate system with a physical coordinatesystem within a real-world environment; and transmit to each device ofmultiple different devices rendering information, wherein the renderinginformation comprises: three-dimensional image data comprising renderinginstructions for the at least one virtual object within least a portionof the three-dimensional architectural model, and coordinate informationthat maps the virtual coordinate system to the physical coordinatesystem.
 2. The computer system as recited in claim 1, wherein theexecutable instructions include instructions that are executable toconfigure the computer system to: receive from a particular device ofthe multiple different devices a ray that extends from a particularportion of a user's perspective towards a rendered portion of thethree-dimensional architectural model; determine that the ray intersectswith a rendered representation of the at least one virtual object;identify one or more functions associated with the independentlyexecutable software object that is associated with the at least onevirtual object; and generate a command interface within thethree-dimensional architectural model that depicts one or more commandsrelated to the one or more functions.
 3. The computer system as recitedin claim 2, wherein determining that the ray intersects with a renderedrepresentation of the at least one virtual object, comprises: extendingthe ray within the three-dimensional architectural model until itintersects the at least one virtual object.
 4. The computer system asrecited in claim 2, wherein the command interface is only generatedwithin the three-dimensional architectural model that is rendered by theparticular device.
 5. The computer system as recited in claim 2, whereinthe ray comprises coordinates within the three-dimensional architecturalmodel and a direction.
 6. The computer system as recited in claim 5,wherein the coordinates within the three-dimensional architectural modelcomprises a set of coordinates associated with a center of a user'sfield-of-view.
 7. The computer system as recited in claim 1 wherein theexecutable instructions include instructions that are executable toconfigure the computer system to: update at least a portion of thethree-dimensional architectural model; generate an updatedthree-dimensional image data that incorporates the updated portion; andtransmit to each device of the multiple different devices updatedrendering information, wherein the updated rendering informationcomprises the updated three-dimensional image data.
 8. The computersystem as recited in claim 1, wherein the three-dimensional image dataconsists of geometry information and texture information describingobjects within the three-dimensional architectural model.
 9. Thecomputer system as recited in claim 1, wherein additional renderinginformation is only transmitted when a change is made to thethree-dimensional architectural model.
 10. A computer-implemented methodfor managing multiple distinct perspectives within a mixed-realitydesign environment, the method comprising: loading a three-dimensionalarchitectural model into memory, wherein: the three-dimensionalarchitectural model is associated with a virtual coordinate system, andthe three-dimensional architectural model comprises at least one virtualobject that is associated with an independently executable softwareobject that comprises independent variables and functions that arespecific to a particular architectural element that is represented bythe at least one virtual object; associating the virtual coordinatesystem with a physical coordinate system within a real-worldenvironment; and transmitting to each device of multiple differentdevices rendering information, wherein the rendering informationcomprises: three-dimensional image data comprising renderinginstructions for the at least one virtual object within least a portionof the three-dimensional architectural model, and coordinate informationthat maps the virtual coordinate system to the physical coordinatesystem.
 11. The computer-implemented method as recited in claim 10,furthering comprising: receiving from a particular device of themultiple different devices a ray that extends from a particular portionof a user's perspective towards a rendered portion of thethree-dimensional architectural model; determining that the rayintersects with a rendered representation of the at least one virtualobject; identifying one or more functions associated with theindependently executable software object that is associated with the atleast one virtual object; and generating a visual object within thethree-dimensional architectural model that depicts one or more commandsrelated to the one or more functions.
 12. The computer-implementedmethod as recited in claim 11, further comprising: extending the raywithin the three-dimensional architectural model until it intersects theat least one virtual object.
 13. The computer-implemented method asrecited in claim 11, wherein the visual object is only generated withinthe three-dimensional architectural model that is rendered by theparticular device.
 14. The computer-implemented method as recited inclaim 11, wherein the ray comprises coordinates within thethree-dimensional architectural model and a direction.
 15. Thecomputer-implemented method as recited in claim 14, wherein thecoordinates within the three-dimensional architectural model comprises aset of coordinates associated with a center of a user's field-of-view.16. The computer-implemented method as recited in claim 10 furthercomprising: updating at least a portion of the three-dimensionalarchitectural model; generating an updated three-dimensional image datathat incorporates the updated portion; and transmitting to each deviceof the multiple different devices updated rendering information, whereinthe updated rendering information comprises the updatedthree-dimensional image data.
 17. The computer-implemented method asrecited in claim 10, wherein the three-dimensional image data consistsof geometry information and texture information describing objectswithin the three-dimensional architectural model.
 18. Thecomputer-implemented method as recited in claim 10, wherein additionalrendering information is only transmitted when a change is made to thethree-dimensional architectural model.
 19. A system for managingmultiple distinct perspectives within a mixed-reality designenvironment, comprising: a mixed-reality server comprising executableinstructions that when executed configure the mixed-reality server toperform at least the following: load a three-dimensional architecturalmodel into memory, wherein: the three-dimensional architectural model isassociated with a virtual coordinate system, and the three-dimensionalarchitectural model comprises at least one virtual object that isassociated with an independently executable software object thatcomprises independent variables and functions that are specific to aparticular architectural element that is represented by the at least onevirtual object; associate the virtual coordinate system with a physicalcoordinate system within a real-world environment; and transmitrendering information to a first mixed-reality device and a second mixedreality device, wherein the rendering information comprises:three-dimensional image data comprising rendering instructions for theat least one virtual object within least a portion of thethree-dimensional architectural model, and coordinate information thatmaps the virtual coordinate system to the physical coordinate system;the first mixed-reality device comprising executable instructions thatwhen execute configure the first mixed-reality device to perform atleast the following: based upon the three-dimensional image data, rendera first mixed-reality environment from a first perspective that isunique to the first mixed-reality device; and in response to a userinput, communicate a first ray to the mixed-reality server; and thesecond mixed-reality device comprising executable instructions that whenexecute configure the second mixed-reality device to perform at leastthe following: based upon the three-dimensional image data, render asecond mixed-reality environment from a second perspective that isunique to the second mixed-reality device; and in response to a userinput, communicate a second ray to the mixed-reality server.
 20. Thesystem as recited in claim 19, wherein: the first ray comprises a firstset of coordinates associated with a center of a user's field-of-viewassociated with the first mixed-reality device; and the second raycomprises a second set of coordinates associated with a center of auser's field-of-view associated with the second mixed-reality device.